In [16]:
# Confirm CUDA is True or YOLO will run on CPU which is much slower than GPU
import torch
#print("Python:", os.sys.version)
print("Torch:", torch.__version__)
print("CUDA available:", torch.cuda.is_available())
if torch.cuda.is_available():
print("Device:", torch.cuda.get_device_name(0))
Torch: 2.5.1+cu121 CUDA available: True Device: NVIDIA GeForce RTX 2070 SUPER
In [17]:
# CUDA is false whenever python version > 3.10.20 had to force a new environment & kernel
import os
from ultralytics import YOLO
print("Python version:", os.sys.version)
print("Torch version:", torch.__version__)
print("CUDA available:", torch.cuda.is_available())
if torch.cuda.is_available():
print("CUDA device:", torch.cuda.get_device_name(0))
else:
print("Running on CPU")
Python version: 3.10.20 | packaged by Anaconda, Inc. | (main, Jun 11 2026, 15:13:20) [MSC v.1942 64 bit (AMD64)] Torch version: 2.5.1+cu121 CUDA available: True CUDA device: NVIDIA GeForce RTX 2070 SUPER
In [18]:
# Check if file path contains yaml file since moving device
# Almost forgot the file path on this device INSIDE the yaml file as well
DATASET = r"D:\Independent_Project\200_Synthetic_spills\data.yaml"
print("\nChecking dataset path...")
if os.path.exists(DATASET):
print(" data.yaml found:", DATASET)
else:
print("data.yaml NOT found — check the path")
raise FileNotFoundError(DATASET)
Checking dataset path... data.yaml found: D:\Independent_Project\200_Synthetic_spills\data.yaml
In [19]:
# Check or load YOLO model n is for nano
print("\nLoading YOLOv11 model...")
model = YOLO("yolo11n.pt") # Auto download if missing
print("Model loaded")
Loading YOLOv11 model... Model loaded
In [20]:
import time
print("\nStarting YOLOv11 training...")
start_time = time.time()
results = model.train(
data=DATASET,
epochs=50,
imgsz=640,
batch=8,
name="last_synthetic_spill_classifier",
device=0 # force to use GPU if available (auto would otherwise reluctantly use CPU)
)
end_time = time.time()
print(f"\nTraining completed in {(end_time - start_time)/60:.2f} minutes")
Starting YOLOv11 training... New https://pypi.org/project/ultralytics/8.4.104 available Update with 'pip install -U ultralytics' Ultralytics 8.4.87 Python-3.10.20 torch-2.5.1+cu121 CUDA:0 (NVIDIA GeForce RTX 2070 SUPER, 8192MiB) engine\trainer: agnostic_nms=False, amp=True, angle=1.0, augment=False, auto_augment=randaugment, batch=8, bgr=0.0, box=7.5, cache=False, cfg=None, classes=None, close_mosaic=10, cls=0.5, cls_pw=0.0, compile=False, conf=None, copy_paste=0.0, copy_paste_mode=flip, cos_lr=False, cutmix=0.0, data=D:\Independent_Project\200_Synthetic_spills\data.yaml, degrees=0.0, deterministic=True, device=0, dfl=1.5, dis=6.0, distill_model=None, dnn=False, dropout=0.0, dynamic=False, embed=None, end2end=None, epochs=50, erasing=0.4, exist_ok=False, fliplr=0.5, flipud=0.0, format=torchscript, fraction=1.0, freeze=None, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, imgsz=640, iou=0.7, keras=False, kobj=1.0, line_width=None, lr0=0.01, lrf=0.01, mask_ratio=4, max_det=300, mixup=0.0, mode=train, model=yolo11n.pt, momentum=0.937, mosaic=1.0, multi_scale=0.0, name=last_synthetic_spill_classifier, nbs=64, nms=False, opset=None, optimize=False, optimizer=auto, overlap_mask=True, patience=100, perspective=0.0, plots=True, pose=12.0, pretrained=True, profile=False, project=None, quantize=None, rect=False, resume=False, retina_masks=False, rle=1.0, save=True, save_conf=False, save_crop=False, save_dir=C:\Users\siane\runs\detect\last_synthetic_spill_classifier, save_frames=False, save_json=False, save_period=-1, save_txt=False, scale=0.5, seed=0, shear=0.0, show=False, show_boxes=True, show_conf=True, show_labels=True, simplify=True, single_cls=False, source=None, split=val, stream_buffer=False, task=detect, time=None, tracker=tracktrack.yaml, translate=0.1, val=True, verbose=True, vid_stride=1, visualize=False, warmup_bias_lr=0.1, warmup_epochs=3.0, warmup_momentum=0.8, weight_decay=0.0005, workers=8, workspace=None Overriding model.yaml nc=80 with nc=3 from n params module arguments 0 -1 1 464 ultralytics.nn.modules.conv.Conv [3, 16, 3, 2] 1 -1 1 4672 ultralytics.nn.modules.conv.Conv [16, 32, 3, 2] 2 -1 1 6640 ultralytics.nn.modules.block.C3k2 [32, 64, 1, False, 0.25] 3 -1 1 36992 ultralytics.nn.modules.conv.Conv [64, 64, 3, 2] 4 -1 1 26080 ultralytics.nn.modules.block.C3k2 [64, 128, 1, False, 0.25] 5 -1 1 147712 ultralytics.nn.modules.conv.Conv [128, 128, 3, 2] 6 -1 1 87040 ultralytics.nn.modules.block.C3k2 [128, 128, 1, True] 7 -1 1 295424 ultralytics.nn.modules.conv.Conv [128, 256, 3, 2] 8 -1 1 346112 ultralytics.nn.modules.block.C3k2 [256, 256, 1, True] 9 -1 1 164608 ultralytics.nn.modules.block.SPPF [256, 256, 5] 10 -1 1 249728 ultralytics.nn.modules.block.C2PSA [256, 256, 1] 11 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] 12 [-1, 6] 1 0 ultralytics.nn.modules.conv.Concat [1] 13 -1 1 111296 ultralytics.nn.modules.block.C3k2 [384, 128, 1, False] 14 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] 15 [-1, 4] 1 0 ultralytics.nn.modules.conv.Concat [1] 16 -1 1 32096 ultralytics.nn.modules.block.C3k2 [256, 64, 1, False] 17 -1 1 36992 ultralytics.nn.modules.conv.Conv [64, 64, 3, 2] 18 [-1, 13] 1 0 ultralytics.nn.modules.conv.Concat [1] 19 -1 1 86720 ultralytics.nn.modules.block.C3k2 [192, 128, 1, False] 20 -1 1 147712 ultralytics.nn.modules.conv.Conv [128, 128, 3, 2] 21 [-1, 10] 1 0 ultralytics.nn.modules.conv.Concat [1] 22 -1 1 378880 ultralytics.nn.modules.block.C3k2 [384, 256, 1, True] 23 [16, 19, 22] 1 431257 ultralytics.nn.modules.head.Detect [3, 16, None, [64, 128, 256]] YOLO11n summary: 182 layers, 2,590,425 parameters, 2,590,409 gradients, 6.4 GFLOPs Transferred 448/499 items from pretrained weights Freezing layer 'model.23.dfl.conv.weight' AMP: running Automatic Mixed Precision (AMP) checks... AMP: checks passed train: Fast image access (ping: 0.10.0 ms, read: 91.217.1 MB/s, size: 10.6 KB) train: Scanning D:\Independent_Project\200_Synthetic_spills\labels\train.cache... 160 images, 53 backgrounds, 0 corrupt: 100% ━━━━━━━━━━━━ 160/160 0.0s val: Fast image access (ping: 0.10.0 ms, read: 106.613.3 MB/s, size: 11.3 KB) val: Scanning D:\Independent_Project\200_Synthetic_spills\labels\val.cache... 40 images, 14 backgrounds, 0 corrupt: 100% ━━━━━━━━━━━━ 40/40 0.0s optimizer: 'optimizer=auto' found, ignoring 'lr0=0.01' and 'momentum=0.937' and determining best 'optimizer', 'lr0' and 'momentum' automatically... optimizer: AdamW(lr=0.001429, momentum=0.9) with parameter groups 81 weight(decay=0.0), 88 weight(decay=0.0005), 87 bias(decay=0.0) Plotting labels to C:\Users\siane\runs\detect\last_synthetic_spill_classifier\labels.jpg... Image sizes 640 train, 640 val Using 8 dataloader workers Logging results to C:\Users\siane\runs\detect\last_synthetic_spill_classifier Starting training for 50 epochs... Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 1/50 1.21G 2.788 5.577 2.517 22 640: 100% ━━━━━━━━━━━━ 20/20 4.0it/s 5.0s0.1s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 8.9it/s 0.3s0.3s all 40 46 0.00249 0.606 0.157 0.0801 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 2/50 1.28G 1.922 4.079 1.454 21 640: 100% ━━━━━━━━━━━━ 20/20 11.3it/s 1.8s0.1s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.2it/s 0.2s.3s all 40 46 0.00426 0.818 0.464 0.262 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 3/50 1.28G 1.762 3.253 1.29 23 640: 100% ━━━━━━━━━━━━ 20/20 11.5it/s 1.7s0.1s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.1it/s 0.2s.3s all 40 46 1 0.181 0.721 0.363 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 4/50 1.28G 1.73 3.081 1.275 15 640: 100% ━━━━━━━━━━━━ 20/20 11.7it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.7it/s 0.2s.2s all 40 46 0.579 0.383 0.527 0.281 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 5/50 1.28G 1.744 2.946 1.326 14 640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.7it/s 0.2s.2s all 40 46 0.231 0.528 0.387 0.147 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 6/50 1.28G 1.626 2.829 1.305 19 640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.9it/s 0.2s.2s all 40 46 0.803 0.269 0.493 0.227 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 7/50 1.28G 1.611 2.636 1.301 19 640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s all 40 46 0.343 0.54 0.334 0.151 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 8/50 1.28G 1.587 2.526 1.254 20 640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s all 40 46 0.52 0.621 0.663 0.382 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 9/50 1.28G 1.519 2.372 1.227 13 640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.6it/s 0.2s.2s all 40 46 0.701 0.799 0.766 0.456 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 10/50 1.28G 1.541 2.277 1.212 23 640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.2it/s 0.2s.2s all 40 46 0.695 0.682 0.763 0.474 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 11/50 1.28G 1.399 2.099 1.164 20 640: 100% ━━━━━━━━━━━━ 20/20 11.7it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s all 40 46 0.914 0.53 0.746 0.444 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 12/50 1.28G 1.364 2.145 1.125 17 640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.7it/s 0.2s.2s all 40 46 0.701 0.652 0.703 0.45 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 13/50 1.28G 1.41 2.153 1.115 26 640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s all 40 46 0.709 0.803 0.819 0.501 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 14/50 1.28G 1.399 2.103 1.147 8 640: 100% ━━━━━━━━━━━━ 20/20 12.4it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s all 40 46 0.692 0.773 0.814 0.52 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 15/50 1.28G 1.354 1.969 1.156 16 640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s all 40 46 0.661 0.758 0.797 0.499 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 16/50 1.28G 1.26 1.875 1.11 23 640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.6it/s 0.2s.2s all 40 46 0.661 0.758 0.743 0.502 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 17/50 1.28G 1.24 1.835 1.091 18 640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.2it/s 0.2s.2s all 40 46 0.607 0.738 0.766 0.53 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 18/50 1.28G 1.238 1.807 1.081 25 640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.7it/s 0.2s.2s all 40 46 0.756 0.712 0.812 0.568 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 19/50 1.28G 1.178 1.666 1.065 16 640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s all 40 46 0.731 0.865 0.848 0.559 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 20/50 1.28G 1.207 1.618 1.071 22 640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.9it/s 0.2s.2s all 40 46 0.816 0.773 0.816 0.569 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 21/50 1.28G 1.115 1.71 1.04 21 640: 100% ━━━━━━━━━━━━ 20/20 11.8it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s all 40 46 0.792 0.864 0.848 0.63 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 22/50 1.28G 1.13 1.609 1.038 24 640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s all 40 46 0.859 0.848 0.881 0.63 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 23/50 1.28G 1.117 1.567 1.044 13 640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s all 40 46 0.947 0.871 0.928 0.722 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 24/50 1.28G 1.083 1.52 1.047 8 640: 100% ━━━━━━━━━━━━ 20/20 11.7it/s 1.7s0.1s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.7it/s 0.2s.2s all 40 46 0.873 0.848 0.915 0.661 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 25/50 1.28G 1.052 1.458 1.022 17 640: 100% ━━━━━━━━━━━━ 20/20 11.8it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.2it/s 0.2s.2s all 40 46 0.863 0.879 0.904 0.698 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 26/50 1.28G 1.082 1.415 1.046 18 640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.2it/s 0.2s.2s all 40 46 0.897 0.866 0.924 0.654 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 27/50 1.28G 1.092 1.436 1.028 18 640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.1it/s 0.2s.2s all 40 46 0.933 0.879 0.949 0.739 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 28/50 1.28G 1.008 1.325 1.001 19 640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s all 40 46 0.976 0.894 0.956 0.752 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 29/50 1.28G 0.9677 1.323 0.975 16 640: 100% ━━━━━━━━━━━━ 20/20 11.8it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s all 40 46 0.96 0.89 0.953 0.769 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 30/50 1.28G 0.939 1.279 0.9572 7 640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s all 40 46 0.942 0.893 0.952 0.752 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 31/50 1.28G 0.9399 1.215 0.9503 25 640: 100% ━━━━━━━━━━━━ 20/20 11.5it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.0it/s 0.2s.2s all 40 46 0.93 0.895 0.955 0.765 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 32/50 1.28G 0.9558 1.201 0.9777 18 640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.8it/s 0.2s.2s all 40 46 0.965 0.932 0.966 0.778 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 33/50 1.28G 0.9434 1.198 0.9816 24 640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s all 40 46 0.945 0.908 0.967 0.779 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 34/50 1.28G 0.8345 1.124 0.9273 20 640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s all 40 46 0.971 0.909 0.97 0.757 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 35/50 1.28G 0.9187 1.156 0.9672 18 640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.1s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.2it/s 0.2s.2s all 40 46 0.95 0.955 0.981 0.807 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 36/50 1.28G 0.8534 1.087 0.9389 17 640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s all 40 46 0.945 0.939 0.983 0.785 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 37/50 1.28G 0.8919 1.096 0.9426 14 640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.6it/s 0.2s.2s all 40 46 0.95 0.924 0.978 0.764 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 38/50 1.28G 0.8384 1.073 0.9319 14 640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.0it/s 0.2s.2s all 40 46 0.944 0.924 0.969 0.799 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 39/50 1.28G 0.8404 1.058 0.9524 17 640: 100% ━━━━━━━━━━━━ 20/20 11.7it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.2it/s 0.2s.2s all 40 46 0.985 0.891 0.972 0.776 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 40/50 1.28G 0.843 1.075 0.9236 18 640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.8it/s 0.2s.2s all 40 46 0.957 0.939 0.982 0.797 Closing dataloader mosaic Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 41/50 1.28G 0.7749 1.082 0.9029 8 640: 100% ━━━━━━━━━━━━ 20/20 5.0it/s 4.0s<0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.3it/s 0.2s.2s all 40 46 0.964 0.925 0.981 0.792 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 42/50 1.28G 0.748 1.121 0.8914 10 640: 100% ━━━━━━━━━━━━ 20/20 12.0it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.6it/s 0.2s.2s all 40 46 0.966 0.91 0.978 0.806 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 43/50 1.28G 0.7304 1.094 0.9028 13 640: 100% ━━━━━━━━━━━━ 20/20 11.9it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 14.7it/s 0.2s.2s all 40 46 0.981 0.907 0.978 0.826 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 44/50 1.28G 0.6428 1.037 0.8731 9 640: 100% ━━━━━━━━━━━━ 20/20 12.5it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s all 40 46 0.966 0.924 0.981 0.828 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 45/50 1.28G 0.6432 1.017 0.8608 4 640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.6it/s 0.2s.2s all 40 46 0.931 0.939 0.975 0.869 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 46/50 1.28G 0.6417 1.014 0.8601 10 640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s all 40 46 0.936 0.939 0.976 0.857 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 47/50 1.28G 0.6418 0.9583 0.8663 8 640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.4it/s 0.2s.2s all 40 46 0.941 0.955 0.984 0.857 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 48/50 1.28G 0.6105 0.98 0.8686 9 640: 100% ━━━━━━━━━━━━ 20/20 12.4it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 12.5it/s 0.2s.2s all 40 46 0.961 0.951 0.983 0.848 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 49/50 1.28G 0.6147 0.9316 0.8847 4 640: 100% ━━━━━━━━━━━━ 20/20 12.1it/s 1.7s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.5it/s 0.2s.2s all 40 46 0.979 0.937 0.983 0.846 Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 50/50 1.28G 0.6124 0.923 0.8493 12 640: 100% ━━━━━━━━━━━━ 20/20 12.2it/s 1.6s0.2s Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 15.0it/s 0.2s.2s all 40 46 0.98 0.934 0.983 0.855 50 epochs completed in 0.035 hours. Optimizer stripped from C:\Users\siane\runs\detect\last_synthetic_spill_classifier\weights\last.pt, 5.4MB Optimizer stripped from C:\Users\siane\runs\detect\last_synthetic_spill_classifier\weights\best.pt, 5.4MB Validating C:\Users\siane\runs\detect\last_synthetic_spill_classifier\weights\best.pt... Ultralytics 8.4.87 Python-3.10.20 torch-2.5.1+cu121 CUDA:0 (NVIDIA GeForce RTX 2070 SUPER, 8192MiB) YOLO11n summary (fused): 101 layers, 2,582,737 parameters, 0 gradients, 6.3 GFLOPs Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 3/3 9.9it/s 0.3s0.3s all 40 46 0.931 0.939 0.976 0.869 wet_spill 13 33 0.914 0.879 0.957 0.793 dry_spill 13 13 0.949 1 0.995 0.945 Speed: 0.4ms preprocess, 1.7ms inference, 0.0ms loss, 1.0ms postprocess per image Results saved to C:\Users\siane\runs\detect\last_synthetic_spill_classifier Training completed in 2.20 minutes
In [ ]: